/*
 * @Author: 孙文豪
 * @Description:
 * @Date: 2021-12-14 17:40:13
 * @LastEditTime: 2023-02-14 16:40:56
 * @LastEditors: 孙文豪
 */
import { createVNode, render } from 'vue'
import message from './index.vue';

// 这里是提示框的逻辑
export default function Message_e(config) {
  // 先判断是否存在弹窗，存在就不继续弹出
  const ele  = document.getElementsByClassName('swh_tips')[0];
  if(ele) return
  const defaultTime = 2000;
  // 创建临时容器,方便执行后删除
  const temporaryContainer = document.createElement('div')
  // 设置临时容器class
  temporaryContainer.setAttribute('class', 'swh_tips')
  // 挂在body上
  document.body.appendChild(temporaryContainer)
  // 定时删除 container， 不删除出现会多多余DOM元素
  // 设置最短显示时间
  let newTime = config.time < 700 ? 700 : config.time
  const close = (type) => {
    let time
    if (type == "ciick") {
      time = 500;
    } else {
      time = (newTime || defaultTime) + 500
    }
    setTimeout(() => {
      temporaryContainer.remove()
    }, time)   //设置时间或者默认时间+500ms延迟可保留向上收起效果
  }
  // 创建虚拟节点，tips时组件 ， config时props接受参数
  const vnode = createVNode(message, { config, close })
  // 把虚拟节点渲染container中
  render(vnode, temporaryContainer)
  if (config.closeBtn) return
  close()
}


